package com.itheima.d5_map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Map集合中的常用方法
 * 注意事项：1.获取所有键的时候要用set集合存储 而不是collection
 *            因为set集合有去重 且键是唯一的
 *         2.获取所有值的时候要用collection集合存储 而不是set集合
 *           因为collection集合可重复 values也可以重复
 *
 */
public class MapDemo1 {
    public static void main(String[] args) {
        //创建map集合
        Map<String,Integer> map = new HashMap<>();
        //添加元素
        map.put("宁姚", 36);
        map.put("有村架纯",30);
        map.put("阮秀",36);
        map.put("阮秀",40);//去重//但是覆盖
        System.out.println(map);

        //根据键获取值
        System.out.println(map.get("阮秀"));
        System.out.println(map.get("有村架纯"));

        //判断是否包含某个键或者值
        System.out.println(map.containsKey("阮秀"));
        System.out.println(map.containsValue(36));
        System.out.println(map.containsValue(40));
        System.out.println("=======================");

        //根据键删除键值对元素
        System.out.println(map.remove("宁姚"));
        System.out.println(map);
        System.out.println(map.isEmpty());
        System.out.println("================");

        //清空集合
//        map.clear();

        //判断集合是否为空
        System.out.println(map.isEmpty());

        //获取集合的长度
        System.out.println(map.size());
        System.out.println("================");

        //获取所有的键
        //注意：因为键不能重复 所以用set集合(set集合自动去重) 而不用collection
        Set<String> keys = map.keySet();
        //遍历set集合 增强for
        for (String key : keys) {
            System.out.println(key);
        }
        System.out.println("================");

        //获取所有的值
        //注意：键值对中的值可以重复 所以用collection而不用set
        Collection<Integer> values = map.values();

        //遍历collection 集合 增强for  拿到values的值
        for (Integer value : values) {
            System.out.println(value);
        }
    }
}
